package com.wizz.trade.trading.service;

import com.wizz.trade.common.PageVo;
import com.wizz.trade.trading.dto.ConsRequestDto;
import com.wizz.trade.trading.dto.TradeRequestDto;
import com.wizz.trade.trading.dto.page.RequestPageDto;
import com.wizz.trade.trading.entity.Request;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wizz.trade.trading.vo.TradeRequestVo;
import com.wizz.trade.trading.vo.StampDutyRequestVo;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 * 付款申请表 服务类
 * </p>
 *
 * @author fyftless
 * @since 2023-07-25 08:15:51
 */
public interface RequestService extends IService<Request> {

    /**
     * 新增印花税付款申请
     * @param consRequestDto 新增付款申请信息集
     */
    void addRequestByConsIds(ConsRequestDto consRequestDto);

    /**
     * 新增采购/销售付款申请
     * @param tradeRequestDto 新增采购/销售付款申请
     */
    void addRequestByTradeIds(TradeRequestDto tradeRequestDto);

    /**
     * 更新付款申请
     * @param request 付款申请
     */
    void updateRequest(Request request);

    /**
     * 删除付款申请
     * @param id 付款申请单id
     */
    void deleteRequest(Integer id);

    /**
     * 付款印花税申请分页查询(第二页)
     * @param pageDto 分页条件
     * @return 分页结果
     */
    PageVo<StampDutyRequestVo> getPageForStampDuty(RequestPageDto pageDto);

    /**
     * 采购付款申请分页查询(第三页)
     * @param pageDto 分页条件
     * @return 分页结果
     */
    PageVo<TradeRequestVo> getPageForTrade(RequestPageDto pageDto);

    /**
     * 上传付款申请扫描件
     * @param multipartFile 付款申请扫描件
     * @param requestId 付款申请单id
     * @return 上传结果
     */
    String uploadRequestImage(Integer requestId, MultipartFile multipartFile);

}
